<?php
class AccountController extends Zend_Controller_Action
{
	private $_uiVar = array();
	private $_account;

	public function init()
	{
		$this->_uiVar["html"]["title"] = BMSC_Html::WEBSITE_TITLE;
		try
		{
			$readerDb = Zend_Registry::get("READER_DB");
			$writerDb = Zend_Registry::get("WRITER_DB");

			$this->_account = new BMSC_Account($readerDb, $writerDb);
		}
		catch (Exception $ex)
		{
			echo $ex->getMessage();
		}
	}
	
	function getAccountCountAction()
	{
		try {
			$r = $this->_account->getAccountCount();
			echo json_encode(array('code' => 0, 'data' => $r['account_count']));
		} catch(Exception $e) {
			echo json_encode(array('code' => -1, 'data' => $e->getMessage()));
		}		
	}
	
	function removeAction()
	{
		$adminSession = new Zend_Session_Namespace("BMSC_ADMIN");
		if ((isset($adminSession->member["IS_LOGIN"])) && ($adminSession->member["IS_LOGIN"] == 1))
		{
			try
			{
				$formData = $_POST;
				$formData = $this->_trimRemoveAccountData($formData);
				$errorMessage = $this->_checkRemoveAccountData($formData);
				if (empty($errorMessage))
				{
					$row = $this->_account->removeAccount($formData["removeAccountID"], $adminSession->member["EMAIL"]);
					if ($row > 0)
						echo json_encode(array("code" => 0, "data" => "- Thành công. <br />"));
					else
						echo json_encode(array("code" => -98, "data" => "- Có lỗi khi lưu dữ liệu vào cơ sở dữ liệu. <br />"));
				}
				else
					echo json_encode(array("code" => -99, "data" => $errorMessage));
			}
			catch (Exception $ex)
			{
				echo json_encode(array("code" => -101, "data" => $ex->getMessage()));
			}
		}
		else
			echo json_encode(array("code" => -100, "data" => "- Bạn cần phải đăng nhập để thực hiện chức năng này. <br />"));
	}
	
	function editAccountStatusAction()
	{
		$adminSession = new Zend_Session_Namespace("BMSC_ADMIN");
		if ((isset($adminSession->member["IS_LOGIN"])) && ($adminSession->member["IS_LOGIN"] == 1))
		{
			try
			{
				$formData = $_POST;
				if (empty($errorMessage))
				{
					$row = 0;
					$row = $this->_account->editAccountStatus($formData['editAccountStatusID'], 
															  $formData['editAccountStatus'],
															  $adminSession->member["EMAIL"]);
					echo json_encode(array("code" => 0, "data" => "- Thành công. <br />"));
				}
				else
					echo json_encode(array("code" => -99, "data" => $errorMessage));
			}
			catch (Exception $ex)
			{
				echo json_encode(array("code" => -101, "data" => $ex->getMessage()));
			}
		}
		else
			echo json_encode(array("code" => -100, "data" => "- Bạn cần phải đăng nhập để thực hiện chức năng này. <br />"));
	}
	
	function getAccountStatusAction()
	{
		$adminSession = new Zend_Session_Namespace("BMSC_ADMIN");
		if ((isset($adminSession->member["IS_LOGIN"])) && ($adminSession->member["IS_LOGIN"] == 1))
		{
			try
			{
				$accountID = (int)trim($this->_getParam("id"));
				$account = $this->_account->getAccountStatus($accountID);
				echo json_encode(array("code" => 0, "data" => $account));
			}
			catch (Exception $ex)
			{
				echo json_encode(array("code" => -101, "data" => $ex->getMessage()));
			}
		}
		else
			echo json_encode(array("code" => -100, "data" => "- Bạn cần phải đăng nhập để thực hiện chức năng này. <br />"));
	}

	function indexAction()
	{
		$adminSession = new Zend_Session_Namespace("BMSC_ADMIN");
		if ((isset($adminSession->member["IS_LOGIN"])) && ($adminSession->member["IS_LOGIN"] == 1))
		{			
			$smarty = Zend_Registry::get("SMARTY");
			$smarty->assign("uiVar", $this->_uiVar);
			$smarty->display("account/index.tpl");
		}
		else
		{
			$zokikAdminSession->redirect["NEXT_URL"] = "/account";
			header("Location: /member/login");
		}
	}

	public function listAction()
	{
		$adminSession = new Zend_Session_Namespace("BMSC_ADMIN");
		if ((isset($adminSession->member["IS_LOGIN"])) && ($adminSession->member["IS_LOGIN"] == 1))
		{
			try
			{
				$from = (int)trim($this->_getParam("from"));
				$numberOfAccounts = (int)trim($this->_getParam("numberOfAccounts"));
				$statusSorting = $this->_getParam('statusSorting');
				$accounts = $this->_account->getAccounts($from, $numberOfAccounts, 'status ' . $statusSorting);
				
				echo json_encode(array("code" => 0, "data" => $accounts));
			}
			catch (Exception $ex)
			{
				echo json_encode(array("code" => -101, "data" => $ex->getMessage()));
			}
		}
		else
			echo json_encode(array("code" => -100, "data" => "- Bạn cần phải đăng nhập để thực hiện chức năng này. <br />"));
	}
	
	
	
	
	
	
	
	
	
	

	private function _trimNewAccountData($formData)
	{

		return $formData;
	}

	private function _trimEditAccountData($formData)
	{

		return $formData;
	}

	private function _trimRemoveAccountData($formData)
	{

		return $formData;
	}

	private function _checkNewAccountData($formData)
	{
		$errorMessage = "";

		return $errorMessage;
	}

	private function _checkEditAccountData($formData)
	{
		$errorMessage = "";

		return $errorMessage;
	}

	private function _checkRemoveAccountData($formData)
	{
		$errorMessage = "";

		return $errorMessage;
	}
}
?>